<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>

</body>
<script>
  const arr = [1, 2, 3, 4, 5]

  // for循环
  for (let i = 0; i < arr.length; i++) {
    console.log(arr[i])
  }

  // forEach
  arr.forEach(function (item, index, arr) {
    console.log(item, index, arr)
  })

  // map map有返回值 自动创建新数组并返回
  let a = arr.map(function (item, index, att) {
    item *= 10
    return item
  })
  console.log(a, arr)

  // filter 过滤 返回符合条件的数组
  let list = [{
    name: "李唯一",
    age: "18",
    like: "姜宁,左丘红婷"
  }, {
    name: "姜宁",
    age: "19",
    like: "李唯一"
  }, {
    name: "左丘红婷",
    age: "20",
    like: "李唯一"
  }]

  // 返回大于18的数
  let res = list.filter(function (item, index) {
    // 直接在返回值后面写条件
    return item.age > 18
  })
  console.log(res)

  // some() 判断是否有符合条件的数据 返回布尔值
  let sun = list.some(function (item, index) {
    return item.name == "李唯一"
  })
  console.log(sun) //true

  // every()  判断每项数据是否符合条件
  let ev = list.every(function (item, index) {
    return item.name == "李唯一"
  })
  console.log(ev) //false

  // reduce() 
  let sum = arr.reduce(function (prev, item, index, arr) {
    // 回调函数
    // prev 上一次的返回值或者初始值
    // item 数组的每一项
    // index 下标
    // arr 原数组
    return prev + item
    // },0初始值
  }, 0)

  console.log('----------')
  console.log(sum)

  // 数组去重
  const arr2 = [1, 2, 3, 4, 2, 1]

  let newArr = arr2.reduce(function (prev, item, index) {
    if (prev.indexOf(item) == -1) {
      prev.push(item)
    }

    return prev
  }, [])
  console.log(newArr)
</script>

</html>